package netty.test19Channelhandler;

import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.ByteToMessageDecoder;
import io.netty.handler.codec.ReplayingDecoder;

import java.util.List;

/**
 * void表示不需要类型管理
 */
public class MyLongDecoder2 extends ReplayingDecoder<Void> {

    /**
     * parma1 上下文，
     * parma2,socket中读的数据
     * param3,处理后的数据放到 param3(List)中后可以传给下一个handler
     */
    @Override
    protected void decode(ChannelHandlerContext context, ByteBuf byteBuf, List<Object> list) throws Exception {
        //旧的代码需要判断读取长度，而ReplayingDecoder 这个不需要，内部会自己判断数据类型

        /*if(byteBuf.readableBytes()>=8){
            list.add(byteBuf.readLong());
        }*/
        list.add(byteBuf.readLong());
    }
}
